3. Dados

1 Diretório

2 Pacotes e diretório

3 Importação

4 Pacote rio

O pacote rio é um pacote R relativamente recente utilizado para importação e exportação de dados. Ele faz suposições sobre o formato do arquivo (veja os formatos suportados aqui), ou seja, adivinha o formato do arquivo que você está tentando importar e, consequentemente, aplica funções de importação apropriadas a esse formato. Tudo isso é feito com a função import().

4.1 Do excel

4.1.1 Um arquivo

# primeira planilha do excel
df_excel <- import("df_excel.xlsx")
df_excel
   RAD REP AF_M2       AF      MST
1   50   1  5.02 5016.429 12.30785
2   50   2  3.65 3648.359 10.73315
3   50   3  3.93 3925.333 10.86140
4   50   4  4.71 4705.269 10.97850
5   70   1  6.12 6118.425 15.75180
6   70   2  5.61 5614.233 13.30495
7   70   3  5.11 5109.944 13.88435
8   70   4  4.98 4975.857 13.09225
9  100   1  5.46 5464.528 16.92240
10 100   2  5.55 5551.951 14.93085
11 100   3  5.72 5723.849 16.12900
12 100   4  5.87 5869.697 15.78145

4.1.2 Vários arquivos

(padrao <- list.files(pattern = "df_excel"))
[1] "df_excel.xlsx"
df_lista <- import_list(file = padrao)
str(df_lista)
List of 2
 $ Planilha1:'data.frame':  12 obs. of  5 variables:
  ..$ RAD  : num [1:12] 50 50 50 50 70 70 70 70 100 100 ...
  ..$ REP  : num [1:12] 1 2 3 4 1 2 3 4 1 2 ...
  ..$ AF_M2: num [1:12] 5.02 3.65 3.93 4.71 6.12 5.61 5.11 4.98 5.46 5.55 ...
  ..$ AF   : num [1:12] 5016 3648 3925 4705 6118 ...
  ..$ MST  : num [1:12] 12.3 10.7 10.9 11 15.8 ...
 $ traits   :'data.frame':  12 obs. of  2 variables:
  ..$ AF : num [1:12] 5016 3648 3925 4705 6118 ...
  ..$ MST: num [1:12] 12.3 10.7 10.9 11 15.8 ...

5 Rstudio

A forma mais comum do pesquisador digitar seus dados é através de planilhas eletrônicas do Excel. Para carregar esses dados, basta ir em Import Dataset na área de trabalho. O passo a passo está descrito abaixo:

Importando dados de planilhas eletrônicas do Excel - Passo 1

Importando dados de planilhas eletrônicas do Excel - Passo 2

Importando dados de planilhas eletrônicas do Excel - Passo 3

6 Exportar

# exportar para excel
export(df_excel, "exportado.xlsx")

7 Tutorial Importação e Exportação

8 Dados tidy

Conjuntos de dados organizados são fáceis de manipular, modelar e visualizar, e possuem uma estrutura específica: cada variável é uma coluna, cada observação é uma linha e cada tipo de unidade observacional é uma tabela (Wickham, 2014)1

8.1 Mesmos dados, diferentes formas

Nesta seção você aprenderá organizar dados no R no formato tidy. Colocar seus dados nesse formato requer algum trabalho inicial, mas esse trabalho compensa a longo prazo. Aqui, um foco especial será dado nas funções do pacote tidyr e do pacote metan. Se você quiser saber mais sobre a teoria por tras dos dados tidy, poderá apreciar o artigo Tidy Data.

Você pode representar os mesmos dados várias maneiras. O exemplo abaixo mostra os mesmos dados organizados de quatro maneiras diferentes. Cada conjunto de dados mostra os mesmos valores de duas variáveis (ALT_ESP, ALT_PLANT) mensuradas em três híbridos (HIBRIDO), considerando três repetições (BLOCOS).

df <- import_list("examples_data.xlsx")
df$df1
  HIBRIDO BLOCO ALT_PLANT ALT_ESP
1      H1     I     3.002   1.878
2      H1    II     2.974   1.834
3      H1   III     2.814   1.674
4      H2     I     2.104   0.910
5      H2    II     2.120   1.034
6      H2   III     1.924   1.018
7      H3     I     2.132   1.052
8      H3    II     2.126   1.012
9      H3   III     2.182   0.992
df$df2
   HIBRIDO BLOCO  VARIAVEL VALOR
1       H1     I ALT_PLANT 3.002
2       H1     I   ALT_ESP 1.878
3       H1    II ALT_PLANT 2.974
4       H1    II   ALT_ESP 1.834
5       H1   III ALT_PLANT 2.814
6       H1   III   ALT_ESP 1.674
7       H2     I ALT_PLANT 2.104
8       H2     I   ALT_ESP 0.910
9       H2    II ALT_PLANT 2.120
10      H2    II   ALT_ESP 1.034
11      H2   III ALT_PLANT 1.924
12      H2   III   ALT_ESP 1.018
13      H3     I ALT_PLANT 2.132
14      H3     I   ALT_ESP 1.052
15      H3    II ALT_PLANT 2.126
16      H3    II   ALT_ESP 1.012
17      H3   III ALT_PLANT 2.182
18      H3   III   ALT_ESP 0.992
df$df3
  HIBRIDO ALT_ESP_I ALT_ESP_II ALT_ESP_III ALT_PLANT_I ALT_PLANT_II
1      H1     1.878      1.834       1.674       3.002        2.974
2      H2     0.910      1.034       1.018       2.104        2.120
3      H3     1.052      1.012       0.992       2.132        2.126
  ALT_PLANT_III
1         2.814
2         1.924
3         2.182
df$df4
  HIBRIDO      name     I    II   III
1      H1 ALT_PLANT 3.002 2.974 2.814
2      H1   ALT_ESP 1.878 1.834 1.674
3      H2 ALT_PLANT 2.104 2.120 1.924
4      H2   ALT_ESP 0.910 1.034 1.018
5      H3 ALT_PLANT 2.132 2.126 2.182
6      H3   ALT_ESP 1.052 1.012 0.992

Essas são todas representações dos mesmos dados, mas são completamente diferentes do ponto de vista de uso.

O que não fazer

Vamos assumir que queiramos computar a média da variável ALT_PLANT. Observe os quatro exemplos abaixo e veja qual está correto.

mean(df$df1$ALT_PLANT)
[1] 2.375333
mean(df$df2$VALOR)
[1] 1.821222
mean(df$df3$ALT_PLANT_I)
[1] 2.412667
mean(df$df4$I)
[1] 1.846333

Um conjunto de dados tidy é um conjunto de dados onde as três regras à seguir são respeitadas:

  1. Cada variável deve ter sua própria coluna.
  2. Cada observação deve ter sua própria linha.
  3. Cada valor deve ter sua própria célula.

A Figura à seguir mostra as regras visualmente.

Adaptado de https://r4ds.had.co.nz/tidy-data.html#tidy-data-1

Após vermos estas regras, percebemos que dos quatro conjuntos apresentados anteriormente, apenas df é tidy. Ao usarmos conjuntos de dados tidy vamos poder aproveitar uma das belezas do R: a possibilidade de aplicar funções à vetores, que neste caso nada mais são do que os valores presentes em cada coluna.

9 Inspeção

maize <- df$maize
plot_intro(maize)

# pacote metan
inspect(maize, plot = TRUE)
# A tibble: 10 × 10
   Variable   Class     Missing Levels Valid_n   Min Median    Max Outlier Text 
   <chr>      <chr>     <chr>   <chr>    <int> <dbl>  <dbl>  <dbl>   <dbl> <chr>
 1 AMB        character No      0          780  NA    NA     NA         NA Line…
 2 HIB        character No      0          780  NA    NA     NA         NA Line…
 3 REP        character No      0          780  NA    NA     NA         NA Line…
 4 APLA_PLANT numeric   Yes     -          772   0     2.52   3.3        7 <NA> 
 5 AIES_PLANT numeric   No      -          780   0.5   1.38   2.39       1 <NA> 
 6 CESP       numeric   Yes     -          776   0.8  15.4   20.4       16 <NA> 
 7 DIES       numeric   Yes     -          779  36.4  50.0   59.7        1 <NA> 
 8 MGRA       numeric   No      -          780  58.5 174.   291.         0 <NA> 
 9 MMG        numeric   No      -          780 123.  344.   546.         6 <NA> 
10 NGRA       numeric   Yes     -          779 147   517    903         10 <NA> 
Warning: Considering the levels of factors, .data should have 1 rows, but it
has 780. Use 'as_factor()' for coercing a variable to a factor.
Warning: Expected three or more factor variables. The data has only 0.
Warning: Missing values in variable(s) APLA_PLANT, CESP, DIES, NGRA.
Warning: Possible text fragments in variable(s) AMB, HIB, REP.
Warning: Possible outliers in variable(s) APLA_PLANT, AIES_PLANT, CESP, DIES,
MMG, NGRA. Use 'find_outliers()' for more details.
Warning: Zero values observed in variable(s) APLA_PLANT.

9.1 Preencher valores

Observe o seguinte conjunto de dados

Na hora da coleta de dados é muito comum observar células mescladas em conjuntos de dados. Observe o que acontece quando estes dados são importados para o software R.

(mesclado <- df$fill)
    AMB HIBRIDO BLOCO ALT_PLANT
1    A1      H1     I     3.002
2  <NA>    <NA>    II     2.974
3  <NA>    <NA>   III     2.814
4  <NA>      H2     I     2.104
5  <NA>    <NA>    II     2.120
6  <NA>    <NA>   III     1.924
7    A2      H1     I     3.002
8  <NA>    <NA>    II     2.974
9  <NA>    <NA>   III     2.814
10 <NA>      H2     I     2.104
11 <NA>    <NA>    II     2.120
12 <NA>    <NA>   III     1.924

A função fill() do pacote tidyr pode ser utilizada para preencher valores faltantes. Ela preenche os valores ausentes nas colunas selecionadas. Isso é útil no formato de saída comum em que os valores não são repetidos e são registrados apenas quando são alterados. Par

(preenchido <- fill(mesclado, AMB, HIBRIDO))
   AMB HIBRIDO BLOCO ALT_PLANT
1   A1      H1     I     3.002
2   A1      H1    II     2.974
3   A1      H1   III     2.814
4   A1      H2     I     2.104
5   A1      H2    II     2.120
6   A1      H2   III     1.924
7   A2      H1     I     3.002
8   A2      H1    II     2.974
9   A2      H1   III     2.814
10  A2      H2     I     2.104
11  A2      H2    II     2.120
12  A2      H2   III     1.924
Free Website Hit Counter
Free website hit counter

Footnotes

  1. Wickham, Hadley. 2014. “Tidy Data”. Journal of Statistical Software 59: 1–23.↩︎